<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>ProcessorCount &mdash; CMake 4.1.1 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a2c47e09" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css?v=4d06bd55" />
    
    <script src="../_static/documentation_options.js?v=e6a937a4"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    
    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="SelectLibraryConfigurations" href="SelectLibraryConfigurations.html" />
    <link rel="prev" title="InstallRequiredSystemLibraries" href="InstallRequiredSystemLibraries.html" />
 

  </head><body>
    <input id="sidebar-check" type="checkbox" />
    <label id="sidebar-overlay" for="sidebar-check"></label>



    <div class="related relbar1" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="SelectLibraryConfigurations.html" title="SelectLibraryConfigurations"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="InstallRequiredSystemLibraries.html" title="InstallRequiredSystemLibraries"
             accesskey="P">previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">ProcessorCount</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="processorcount">
<span id="module:ProcessorCount"></span><h1>ProcessorCount<a class="headerlink" href="#processorcount" title="Link to this heading">¶</a></h1>
<p>This module provides a command to determine the number of processors/cores.</p>
<p>Load this module in CMake with:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">include(</span><span class="nb">ProcessorCount</span><span class="nf">)</span>
</pre></div>
</div>
<section id="commands">
<h2>Commands<a class="headerlink" href="#commands" title="Link to this heading">¶</a></h2>
<p>This module provides the following command:</p>
<dl class="cmake command">
<dt class="sig sig-object cmake" id="command:processorcount">
<span class="sig-name descname"><span class="pre">ProcessorCount</span></span><a class="headerlink" href="#command:processorcount" title="Link to this definition">¶</a></dt>
<dd><p>Determines the number of logical CPU cores available on the machine:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">ProcessorCount(</span><span class="nv">&lt;variable&gt;</span><span class="nf">)</span>
</pre></div>
</div>
<p>This command sets a variable named <code class="docutils literal notranslate"><span class="pre">&lt;variable&gt;</span></code> to the number of logical
CPU cores available on the machine, if the information can be determined.
If successful, the variable is guaranteed to be set to a positive integer
(&gt;=1).  If the processor count cannot be determined, it is set to 0.</p>
<p>Currently, this functionality is implemented for AIX, Cygwin, FreeBSD, Haiku,
HPUX, Linux, macOS, QNX, Sun and Windows.</p>
<p>This command provides an approximation of the number of compute cores
available on the current machine, making it useful for parallel building and
testing.  It is meant to help utilize as much of the machine as seems
reasonable, though users should consider other workloads running on the
machine before using its full capacity for parallel tasks.</p>
<div class="versionchanged">
<p><span class="versionmodified changed">Changed in version 3.15: </span>On Linux, returns the container CPU count instead of the host CPU count.</p>
</div>
</dd></dl>

<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This module relies on system-dependent commands to determine the number of
processors, which may not always provide accurate information in certain
environments.  A more generally accurate logical CPU count can be also
obtained with the <span class="target" id="index-0-command:cmake_host_system_information"></span><a class="reference internal" href="../command/cmake_host_system_information.html#command:cmake_host_system_information" title="cmake_host_system_information"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">cmake_host_system_information()</span></code></a>:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">cmake_host_system_information(</span><span class="no">RESULT</span><span class="w"> </span><span class="nb">n</span><span class="w"> </span><span class="no">QUERY</span><span class="w"> </span><span class="no">NUMBER_OF_LOGICAL_CORES</span><span class="nf">)</span>
</pre></div>
</div>
</div>
</section>
<section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Link to this heading">¶</a></h2>
<p>In the following example this module is used in a <a class="reference internal" href="../manual/ctest.1.html#cmdoption-ctest-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">ctest</span> <span class="pre">-S</span></code></a>
dashboard script to determine number of cores to use for a parallel
<a class="reference internal" href="../manual/ctest.1.html#ctest-build-step"><span class="std std-ref">CTest Build Step</span></a>:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">include(</span><span class="nb">ProcessorCount</span><span class="nf">)</span>
<span class="nf">ProcessorCount(</span><span class="nb">n</span><span class="nf">)</span>
<span class="nf">if(</span><span class="no">NOT</span><span class="w"> </span><span class="nb">n</span><span class="w"> </span><span class="no">EQUAL</span><span class="w"> </span><span class="m">0</span><span class="nf">)</span>
<span class="w">  </span><span class="nf">set(</span><span class="no">CTEST_BUILD_FLAGS</span><span class="w"> </span><span class="p">-</span><span class="nb">j</span><span class="o">${</span><span class="nt">n</span><span class="o">}</span><span class="nf">)</span>
<span class="w">  </span><span class="nf">set(</span><span class="nb">ctest_test_args</span><span class="w"> </span><span class="o">${</span><span class="nt">ctest_test_args</span><span class="o">}</span><span class="w"> </span><span class="no">PARALLEL_LEVEL</span><span class="w"> </span><span class="o">${</span><span class="nt">n</span><span class="o">}</span><span class="nf">)</span>
<span class="nf">endif()</span>
</pre></div>
</div>
</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3>Table of Contents</h3>
    <ul>
<li><a class="reference internal" href="#">ProcessorCount</a><ul>
<li><a class="reference internal" href="#commands">Commands</a></li>
<li><a class="reference internal" href="#examples">Examples</a></li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="InstallRequiredSystemLibraries.html"
                          title="previous chapter">InstallRequiredSystemLibraries</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="SelectLibraryConfigurations.html"
                          title="next chapter">SelectLibraryConfigurations</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/module/ProcessorCount.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="SelectLibraryConfigurations.html" title="SelectLibraryConfigurations"
             >next</a> |</li>
        <li class="right" >
          <a href="InstallRequiredSystemLibraries.html" title="InstallRequiredSystemLibraries"
             >previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">ProcessorCount</a></li> 
      </ul>
    </div>

    <div class="footer" role="contentinfo">
    &#169; Copyright 2000-2025 Kitware, Inc. and Contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3.
    </div>
<script type="text/javascript">
(function() {
  "use strict";
  const hide = () => document.getElementById("sidebar-check").checked = false;
  addEventListener("keydown", e => (e.key === "Escape") && hide());
  addEventListener("click", e => (e.target.tagName === "A") && hide());
  addEventListener("hashchange", hide)
})();
</script>
  </body>
</html>